package com.ymm.platform.api.facade;

import com.github.pagehelper.PageInfo;
import com.ymm.platform.api.constants.dto.LltorderDetailsDTO;
import com.ymm.platform.api.constants.dto.OrderShowDTO;
import com.ymm.platform.api.constants.dto.QueryOrderDTO;
import com.ymm.platform.api.utils.Result;

/**
 * @Description: 平台查询订单服务
 * @Author: Xuecheng Li
 * @CreateTime: 2022-08-03  20:54
 * @Version: 1.0.0
 */

public interface PlatformQueryOrderService {

    /**
     * @Description 平台分页查询所有订单
     * @Param [pageNum]
     * @return List<OrderShowDTO>
     **/
    Result<PageInfo> queryAllOrder(Integer pageNum, Integer pageSize);

    /**
     * @Description 分页条件查询目标订单
     * @Param [pageNum, queryOrder]
     * @return List<OrderShowDTO>
     **/
    Result<PageInfo> queryOrderOnCondition(Integer pageNum,Integer pageSize, QueryOrderDTO queryOrder);

    /**
    * @Author: chencong
    * @Description:平台查询进行中订单
    * @DateTime: 16:10 2022/8/13
    * @Params: [pageNum]
    * @Return com.ymm.platform.api.utils.Result<java.util.List<com.ymm.platform.api.constants.dto.OrderShowDTO>>
    */
    Result<PageInfo> queryOrderInProgress(Integer pageNum,Integer pageSize);

    /**
     * @Author: chencong
     * @Description:平台查询已完成订单
     * @DateTime: 16:10 2022/8/13
     * @Params: [pageNum]
     * @Return com.ymm.platform.api.utils.Result<java.util.List<com.ymm.platform.api.constants.dto.OrderShowDTO>>
     */
    Result<PageInfo> queryOrderComplete(Integer pageNum,Integer pageSize);

    /**
     * @Author: chencong
     * @Description:平台查询取消的订单
     * @DateTime: 16:10 2022/8/13
     * @Params: [pageNum]
     * @Return com.ymm.platform.api.utils.Result<java.util.List<com.ymm.platform.api.constants.dto.OrderShowDTO>>
     */
    Result<PageInfo> queryOrderCancel(Integer pageNum,Integer pageSize);
    
    /**
    * @Author: chencong
    * @Description: 平台只能更改订单状态
    * @DateTime: 16:20 2022/8/13
    * @Params: [tradeId]
    * @Return com.ymm.platform.api.utils.Result<com.ymm.platform.api.constants.dto.OrderShowDTO>
     * @return
    */
    Result editOrderState(Long orderId, Integer orderCancelType, Integer orderCancelReason, String orderCancelDescription);

    /**
    * @Author: chencong
    * @Description: 查询一个订单
    * @DateTime: 21:53 2022/8/15
    * @Params:
    * @Return
    */
    Result<OrderShowDTO> queryOrderDetailsById(Long tradeId);

    Result<PageInfo> queryOrderListByDriverName(Integer pageNum, Integer pageSize,String driverName);

    Result<PageInfo> queryOrderListByShipperName(Integer pageNum, Integer pageSize,String shipperName);
}
